Wiki

Clone wiki

darudar-backend / Ресурсы дара

[TOC] #Формат дара ##В списке

#!json
    {
      "pk_gift": 4912137,
      "count_likes": 0,
      "is_cross": 0,
      "cross_count": 0,
      "privacy": 0,
      "status": 0,
      "dtime": 1477737165,
      "dtime_update": 1477737165,
      "name": "Видео кассета Армагеддон",
      "preview": { <-- Превью дара
        "uri": "http://img68.static.darudar.org/s300/02/01/dev/14/cc/14ccd9588fd5f42ba3f7a095babcc775e7d81b96.jpg",
        "url_sq": "http://img68.static.darudar.org/c50/02/01/dev/14/cc/14ccd9588fd5f42ba3f7a095babcc775e7d81b96.jpg"
      },
      "author": {...}, <-- автор (см. формат пользователя в списке)
      "adult": null,
      "relations:me": {
        "like": null
      }
    }
##Полный
#!json
{
    "pk_gift": 2032143, <-- Уникальный ID дара
    "is_publicated": 1, <-- Флаг опубликованности
    "is_trash": 0, <-- Флаг трешанутости
    "count_likes": 0, <-- Кол-во лайков
    "count_views": 0, <-- Кол-во просмотров дара
    "cross_count": 0, <-- Очерёдность передара
    "is_republicated": 0, <-- Флаг переопубликованности
    "comments_count": 13, <-- Кол-во публичных комментариев к дару
    "wishers_count": 0, <-- Кол-во желающих дар
    "thanks_count": 0, <-- Кол-во благодарностей к дару
    "privacy": 0, <-- Приватность (см. ниже)
    "status": 0, <-- Статус дара (см. ниже)
    "type": 0, <-- 
    "applicability": 0, <-- Дар для одного или для многих (см. ниже)
    "transfer": 1, <-- Cпособ передачи (DEPRECATED!)
    "dtime": 1478177209, <-- timestamp времени публикации дара
    "dtime_update": 1480095729, <-- timestamp последнего изменения публикации
    "dtime_expiry": 1485896400, <-- timestamp времени истечения дара
    "name": "tst", <-- Заголовок дара
    "preview": { <-- Превью дара
      "uri": "http://img68.static.darudar.org/s300/02/01/dev/14/cc/14ccd9588fd5f42ba3f7a095babcc775e7d81b96.jpg",
      "url_sq": "http://img68.static.darudar.org/c50/02/01/dev/14/cc/14ccd9588fd5f42ba3f7a095babcc775e7d81b96.jpg"
    },
    "video": [],
    "tags": "фыв",
    "description": "фывф",
    "author": {...}, <-- автор (см. формат пользователя в списке)
    "media": { <-- медиа-файлы дара
       "images": [ 
         {...}, <-- Изображеняия дара (см. файлы)
         {...},
         {...}
       ]
    },
    "transfers": [
       {...}, <-- Способ передачи дара (см. способы передачи)
       {...},
       {...}
    ],
    "adult": null, <-- Флаг 18+
    "relations:me": { <-- Персональные отношения текущего пользователя с даром
      "comments_new": { <-- кол-во новых публичных комментариев с момента последнего просмотра комментариев к дару
        "dtime": 1507393682,
        "count_new": 2
      },
      "like": { <-- лайкал ли
        "dtime": 1485265899 <-- время лайка
      },
      "wish": { <-- Отношение между даром и текущим пользователем
        "dtime_added": 1485243649, <-- время добавления записи
        "dtime_updated": 1485243649, <-- время изменения записи
        "attitude": 1, <-- статус пользователя в даре (см. ниже)
        "show_contacts": 0, <-- показываются ли контакты текущего пользователя в даре
        "wishers_last_count": 1, <-- кол-во желающих
        "inbox_comments_new_count": 0, <-- кол-во новых комментариев в даре        
        "inbox_dtime_commented": 0, <-- время последнего комментария во встречах
        "inbox_dtime_visited": 0, <-- время последнего посещения сообщений встреч
        "inbox_comments_count": 0, <-- общее кол-во комментариев в сообщениях встреч
        "count_wishers_new": 1 <-- кол-во новых желающих с момента последнего посещения списка желающих  
      }
    }
}

Поле privacy может принимать следующие значения:

  • 0 - дар для всех,
  • 1 - только заинтересованным,

Поле status может принимать следующие значения:

  • 0 - дарится,
  • 1 - обещано,
  • 2 - подарено,

Поле applicability может принимать следующие значения:

  • 0 - дар для одного,
  • 1 - дар для многих,

Поле attitude может принимать следующие значения:

  • 1 - автор дара,
  • 2 - пожелал дар,
  • 3 - дар обещан,
  • 4 - дар подарен,
  • 5 - отказался от дара,

Поля media.images представляют из себя массив объектов файлов

Поле transfers представляет из себя массив объектов способов передачи

#Формат отношения дар-пользователь (желающий, даритель etc) Данный объект является "желанием".

##В списке

#!json
    {
      "pk_gtu": 243649, <-- уникальный ID
      "dtime_added": 1485243649, <-- время добавления записи
      "dtime_updated": 1485243649, <-- время изменения записи
      "attitude": 1, <-- статус пользователя в даре (см. ниже)
      "comments_count": 3, <-- Кол-во комментариев к желанию

      "user": {...}, <-- Пользователь (см. вывод пользователя в списке)
      "gift": {...}, <-- Дар (см. вывод дара в списке)
      "wish": {
        "dtime_updated": 1487417158, <-- Время добавления пожелания
        "comment": "Очень хочухочочу!!!" <-- Комментарий пожелания
      },
      "relations:me": { <-- Отношение текущего пользователя
          "comments_new": { <-- Cчётчик комментариев с момента последнего "просмотра" 
              "dtime": 1507472551,
              "count_new": 0
          }
      },
    }
##Полный Аналогично выводу в списке

#Ресурсы дара

Добавление дара

URI: POST ~/gift

Создание дара.

Параметр Тип Значение
name string Название дара. Обязательное поле.
images array Список файлов-изображений
description text Описание дара
tags string Ключевые слова. Разделитель запятая ","
applicability* int Для скольких человек предназначен
transfers array Способы передачи дара
privacy* int Приватность дара
adult boolean Флаг для даров 18+
publish* int Тип публикации

Поле applicability может принимать следующие значения:

  • 0 - дар для одного,
  • 1 - дар для многих,

Поле privacy может принимать следующие значения:

  • 0 - дар для всех,
  • 1 - только заинтересованным,

Поле publish может принимать следующие значения:

  • 0 - в черновик,
  • 1 - публичный доступ,

Поле transfers формируется из массива полей обозначенных в способах передачи за исключением поля key (!).

Пример запроса:

POST /gift HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>

{
  "name":"Бритвенный станок",
  "images": [688, 689],
  "description":"Хороша и неказиста жизнь простого тракториста!",
  "tags":"один, второй",
  "transfers": [
    {
      "type": "meeting_p",
      "city": 447755,
      "address": "Лопытанский пер, 5",
      "comment": "sitting reading"
    }
  ],
  "privacy":1,
  "adult":false,
  "applicability":0,
  "publish":0
}

Пример ответа:

#!json
{
  "saved": "ok",
  "gift": {
    "pk_gift": 2032148 <-- Идентификатор дара
  }
}

Редактирование дара

URI: PUT ~/gift/<giftId>

Редактирование дара с указателем <giftId>. Параметры и ответы все те же, что и в методе создания (см. выше).

Удаление дара

URI: DELETE ~/gift/<giftId>

Удаление дара с указателем <giftId>.

Пример запроса:

DELETE /gift/2032149 HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "deleted": "ok",
  "gift": {
    "pk_gift": 2032149 <-- ID удалённого дара
  }
}

Дар

URI: GET ~/gift/<giftId>

Получает данные о даре с указанным уникальным идентификатором дара <giftId>

Пример запроса:

GET /gift/2032143 HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
accept: application/json
authorization: <токен>

В ответе в свойстве gift приходит JSON-объект дара. Пример ответа:

#!json
{
  "gift": {...} <-- Дар в полном формате (см. в начало документа)
}

Лайк дара

URI: POST|DELETE ~/gift/<giftId>/like

Отметить дар с указателем <giftId> флагом "нравится" (или удалить эту отметку).

Пример запроса:

POST /gift/2032143/like HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "like": {
    "pk_gift": 2032143
  },
  "count_likes": 2 <-- Суммарное кол-во лайков дара 
}

Список благодарностей к дару

URI: GET ~/gift/<giftId>/thanks

Список благодарностей к дару <giftId>.

Пример запроса:

GET /gift/2032020/thanks HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

В ответе будет список благодарностей к указанному дару. Доступна пагинация.

Пример ответа:

#!json
{
  "thanks": [
    {...}, <-- Благодарность (см. вывод благодарнсоти в списке)
    {...},
    {...}
  ],
  "paginator": {...} <-- см. постраничную навигацию
}
Описание полей смотрите в описании вывода одной благодарности.

Похожие дары

URI: GET ~/gift/<giftId>/similar

Получает дары "похожие" на дар с указателем <giftId>.

Параметр Тип Значение
status(опциональный) int Статус похожих даров:
Параметр status может принимать следующие значения:
  • 0 - дарится,
  • 1 - обещано,
  • 2 - подарено.

Пример запроса:

#!

GET /gift/5001520/similar? HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json
Пример ответа:

#!json
{
  "gifts": [
    {...}, <-- дар (см. формат дара в списке)
    {...}, <-- дар (см. формат дара в списке)
    {...}
  ],
  "paginator": {
    "page": 1,
    "perPage": 10,
    "from": 0,
    "step": 10,
    "countItems": 100,
    "countPages": 10
  }
}

Комментарии к дару

URI: GET ~/gift/<giftId>/comments

Получает древовидные комментарии к дару с идентификатором дара <giftId>. Комментарии уже отсортированы по дате и по вложенности. Формат вывода комментариев

Пример запроса:

GET /gift/4670618/comments HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

В ответе в свойстве comments приходит список комментариев. Пример ответа:

#!json
{
    "comments": [
      {...}, <-- комментарий (см. ссылку на вывод комментария в списке выше)
      {...},
      {...}
    ]
  }

Комментарии к дару (добавление)

URI: POST ~/gift/<giftId>/comments

Добавление публичного комментария к дару с идентификатором дара <giftId>.

Параметр Тип Значение
comment text Текст комменатрия
parent int Идентификатор родительского комментария

Поле comment является обязательным!

Пример запроса:

POST /gift/4670618/comments HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "saved": "ok",
  "comment": {...} <-- Комментарий (см. формат вывода в списке)
}
Формат вывода комментария

Комментарии к дару (редактирование)

URI: PUT ~/gift/<giftId>/comments

Редактирование публичного комментария к дару с идентификатором <giftId>. Редактирование доступно в течение 10 минут с момента создания комментария!

Параметр Тип Значение
comment text Текст комменатрия

Пример запроса:

PUT /gift/4670618/comments/28095164 HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "saved": "ok",
  "comment": {...} <-- Комментарий
}
Формат вывода комментария

Список желающих дар

URI: GET ~/gift/<giftId>/wishers

Список желающих дар с идентификатором <giftId>

Пример запроса:

GET /gift/2032186/wishers HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "wishers": [
    {...}, <-- Отношение пользователь-дар в списке
    {...}, 
    {...}
  ]
}
Форматирование отношения пользователь-дар

Пожелать/отказаться от дара

URI: POST|PUT|DELETE ~/gift/<giftId>/wishers

Пожелать или отказаться от дара с идентификатором <giftId>.

Параметр Тип Значение
comment text Текст пожелания дара

Данный параметр доступен только для методов POST (добавление нового желающего) и PUT (редактирование пожелания).

Пример запроса:

POST /gift/2032186/wishers HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

{"comment": "Здравствуйте! Пригодилось бы на даче"}

Пример ответа:

#!json
{
  "wisher": {...} < Отношение пользователь-дар в списке
}
Форматирование отношения пользователь-дар

Комментарии к желанию в даре

URI: GET ~/gift/<giftId>/wishers/<wishId>/comments

Получает древовидные комментарии к дару с идентификатором дара <giftId> для желания <wishId>. Комментарии уже отсортированы по дате и по вложенности. Формат вывода комментариев

Пример запроса:

GET /gift/2032368/wishers/12204943/comments HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

В ответе в свойстве comments приходит список комментариев. Пример ответа:

#!json
{
    "comments": [
      {...}, <-- комментарий (см. ссылку на вывод комментария в списке выше)
      {...},
      {...}
    ]
  }

Комментарии к желанию дара (добавление)

URI: POST ~/gift/<giftId>/wishers/<wishId>/comments

Добавление публичного комментария к дару с идентификатором дара <giftId> для желания <wishId>.

Параметр Тип Значение
comment text Текст комменатрия
parent int Идентификатор родительского комментария

Поле comment является обязательным!

Пример запроса:

POST /gift/2032368/wishers/12204943/comments HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "saved": "ok",
  "comment": {...} <-- Комментарий (см. формат вывода в списке)
}
Формат вывода комментария

Комментарии к желанию дара (редактирование)

URI: PUT ~/gift/<giftId>/wishers/<wishId>/comments/<commentId>

Редактирование публичного комментария <commentId> к дару с идентификатором <giftId> для желания <wishId>. Редактирование доступно в течение 10 минут с момента создания комментария!

Параметр Тип Значение
comment text Текст комменатрия

Пример запроса:

PUT /gift/2032368/wishers/12204943/comments/28095370 HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "saved": "ok",
  "comment": {...} <-- Комментарий
}
Формат вывода комментария

Пообещать/разобещать дар

URI: POST|DELETE ~/gift/<giftId>/promise/<login>

Пообещать (или разобещать) дар с указателем <giftId> указанному желающему <login>.

Пример запроса:

POST /gift/2032186/promise/brutto HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "promise": {
    "pk_gift": 2032186,
    "pk_user": 171452
  }
}

Сменить статус дара

URI: PUT ~/gift/<giftId>/status

Ручная смена статуса дара с идентификатором <giftId>. Статус дара не может быть изменён, если дар никому не обещан!

Параметр Тип Значение
status int Новый статус дара

Поле status может принимать следующие значения:

  • 0 - дарится,
  • 1 - обещано,
  • 2 - подарено,

Пример запроса:

PUT /gift/2032186/status HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

{"status": 2}

Пример ответа:

#!json
{
  "changed": "ok",
  "status": {
    "pk_gift": 2032186,
    "value": 2
  }
}

###Сообщения встреч URI: ~/gift/<giftId>/meeting/comments

Получает древовидные комментарии сообщений встреч к дару с идентификатором дара <giftId>. Комментарии уже отсортированы по дате и по вложенности. Формат вывода комментариев.

Пример запроса:

GET /gift/4670618/meeting/comments HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

В ответе в свойстве comments приходит список комментариев. Пример ответа:

#!json
{
    "comments": [
      {...}, <-- комментарий (см. ссылку на вывод комментария в списке выше)
      {...},
      {...}
    ]
  }

Сообщения встреч (добавление)

URI: POST ~/gift/<giftId>/meeting/comments

Добавление публичного комментария к дару с идентификатором дара <giftId>.

Параметр Тип Значение
comment text Текст комменатрия
parent int Идентификатор родительского комментария

Поле comment является обязательным!

Пример запроса:

POST /gift/4670618/meeting/comments/ HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "saved": "ok",
  "comment": {...} <-- Комментарий (см. формат вывода в списке)
}
Формат вывода комментария

Сообщения встреч (редактирование)

URI: PUT ~/gift/<giftId>/meeting/comments/<commentId>

Редактирование публичного комментария к дару с идентификатором <giftId>. Редактирование доступно в течение 10 минут с момента создания комментария!

Параметр Тип Значение
comment text Текст комменатрия

Пример запроса:

PUT /gift/4670618/meeting/comments/28095 HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "saved": "ok",
  "comment": {...} <-- Комментарий
}
Формат вывода комментария

Очистить сообщения встреч

URI: DELETE ~/gift/<giftId>/meeting/comments

Удаление всех комментариев в разделе "сообщения встреч" к дару с идентификатором <giftId>. Эта функция доступна только дарителю!

Пример запроса:

DELETE /gift/4670618/meeting/comments HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "deleted": "ok",
}

###Список встреч URI: GET ~/gift/<giftId>/meeting

Список встреч с теми кому обещано (если текущий пользователь автор дара) или с автором (если ты одариваемый в этом даре).

Пример запроса:

GET /gift/4670618/meeting HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "meetings": [
    {...} <-- Встреча (см.)
  ]
}
Формат вывода встреч

###Видимость контактов во встрече (переключатель) URI: PUT ~/gift/<giftId>/meeting/contacts/switch

Переключает видимость контактов текущего пользователя для остальных участников встречи в даре с идентификатором <giftId>.

Пример запроса:

PUT /gift/2032131/meeting/contacts/switch HTTP/1.1
HOST: api.brutto.dev.darudar.com
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "show_contacts": true
}

Пожаловаться (недар)

URI: POST|DELETE ~/gift/<giftId>/trash

Пожаловаться на дар с идентификатором <giftId>

Параметр Тип Значение
reason int Причина из списка

Поле reason может принимать следующие значения:

  • 1 Попытка обмена или продажи
  • 2 Нарушается процедура дарения
  • 3 Раскрываются контактные данные
  • 5 Может быть выложено в интернете для всех
  • 6 Нарушаются авторские права
  • 7 Скорее реклама, чем дар
  • 8 Просьба о помощи или о знакомстве
  • 9 Лучше выбросить, чем дарить
  • 11 Негигиенично или опасно для здоровья
  • 12 Нарушаются нормы этики и морали
  • 13 Сомнения в достоверности и правдивости информации
  • 14 Плохое оформление или группировка

Метод DELETE доступен только пользователям с административным доступом! Он полностью снимает все жалобы с указанного дара.

Пример запроса:

POST /gift/2032187/trash HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/x-www-form-urlencoded
authorization: <token>
accept: application/json

{"reason": 12}

Пример ответа:

#!json
{
  "trashed": "ok"
}

Группы дара

URI: GET ~/gift/<giftId>/groups

Выводит список групп, в которые входит дар <giftId>

Пример запроса:

GET /gift/2032187/groups HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/x-www-form-urlencoded
authorization: <token>
accept: application/json

{"groups": [1234,12345]}

Пример ответа:

#!json
{
  "groups": [
    {...}, <-- Группа (см. вывод группы на списке)
    {...}
  ]
}

Добавление дара в несколько групп

URI: POST ~/gift/<giftId>/groups

Параметр Тип Значение
groups array Массив идентификаторов групп

Пример запроса:

POST /gift/2032187/groups HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/x-www-form-urlencoded
authorization: <token>
accept: application/json

Пример ответа:

#!json
{
  "added":"ok"
}

Updated